High performance control units are utilized to maintain speeds of host and I/O interfaces in a data processing system. Typically these interfaces are bridges between different types of technologies and both access a shared memory. An example of a host interface may, for example, be a proprietary bus such as a Proposed Draft Addendum (PDAD) bus. An example of a I/O interface is a Small Computer Systems Interface (SCSI) bus. Typically, a host interface can access data faster than the I/O interface. Consequently, typically there are more I/O interfaces than host interfaces.
In a high performance control unit the host interface needs to access the data from the I/O interface as soon as possible. One potential problem that arises when starting the host interface too soon is that the host interface may pass the I/O interface causing an underrun. On the conservative side, a store and forward mode can be enabled where all the data is read from the drive before starting the host interface. This ensures that there are no underruns but it does not provide the best performance system. One would like to be aggressive such that the I/O interface stays just ahead of the host interface but also minimize underruns which causes system retries also affecting performance. The amount of time needed to ensure that the I/O interface can stay ahead of the host interface is referred to as the "backing factor." The determination of the backing factor is based on the data rate of the disk, I/O interface data rate to the disk, host interface's data rate, discontinuities in the data stream due to the drive (head switch and motion seek).
Static backing factor arrangements for use with high performance control units are known. In a system with a static backing factor arrangement the calculation of the backing factor is done before the I/O interface starts accessing the data from the drive. The system will set a timer with the backing factor value which will cause an interrupt indicating that it is time to start the host interface. The data from the I/O interface is being stored in the control unit's memory. Both the I/O interface and the host interface will be accessing the memory at the same time. In this type of system, the I/O interface will have a head start based on the backing factor. In a typical static backing arrangement, the value calculated for the backing factor is based on an average data rate with a nominally loaded memory system.
The problems encountered with the static backing factor are related to three issues.
1. The I/O interface and the host interface are competing with other processes for the main memory. Each process has to arbitrate for the memory bus internal to its chip. Then it has to arbitrate among the different chips for access to the memory. This affects the data rate of the I/O interface in accessing the memory potentially aggravating the amount of underruns in heavily loaded systems. In lightly loaded systems the I/O interface will run at a faster data rate so we will not have any underruns but our performance will not be as fast as it could have been.
2. In most control units the host interface has a higher data rate thus it will naturally catch up to the I/O interface.
3. Another issue that causes underruns is unique to disks. The disk may have unexpected revolutions after the start of data transfer. This will definitely cause an underrun as the backing factor assumes no unexpected revolutions to optimize for performance.
Accordingly, what is needed is a method and system that overcomes the abovementioned problems. The present invention addresses such a need.